Computer-aided cell-based design has been developed for designing large scale ICs such as application specific integrated circuits (ASICs) and gate arrays. The cell is a circuit that has been pre-designed and pre-verified as a building block. In a standard cell design, each distinct cell in a library may have geometries of active, gate, and metal levels. Examples of a standard cell or gate array cell include an inverter, a NAND gate, a NOR gate, a flip flop, and other similar logic circuits.
Integrated circuit design includes two steps: placement and routing. During the placement step, the positions and orientations of cells are determined. During the routing step, interconnects or conductive features are added to connect ports on the cells.